Exemplary embodiments relate generally to data transfer operations, and particularly to systems and methods for ensuring correct dataflow.
In computing, many systems such as data processing and storage systems utilize temporary memories to facilitate various operations. For example, many systems utilize dataflow buffers to temporarily hold data that is being transferred between two locations, such as between caches or other regions of memory, processors and servers. As systems such as cache management systems become more complex, data flow is often separated from control functions.
In order to maintain data integrity, systems generally require a considerable number of control buses between control macros and dataflow buffers. The buffer controls rely on sequence information from control macros. Processing and/or hardware errors can cause buffer controls to read or write improper data, which can result in loss of data and compromised system integrity.
Other error checking techniques include splitting a dataflow within a cache or other memory into separate synchronously operated data stacks having independent controls, and error checking by verifying that the stacks operated synchronously. In other designs, the data stacks are consolidated into a single stack with one set of controls, however this combination eliminates the ability to error check by comparing two independent controls.